﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Content;

using _XNA__RunningDeath.DTO;
using _XNA__RunningDeath.DTO.VatThe;
using _XNA__RunningDeath.GLO;

namespace _XNA__RunningDeath.BUS.VatThe
{
    class CChuoi_BUS
    {
        CVatThe_DTO _Chuoi;//Tạo lớp thông tin chuối 
        Vector2 _toadoXuatHien1; // Tọa độ xuất hiện của chuối...
        public Rectangle _rechuoi;// biến đùng để bao đối tượng chuối...
        Vector2 _pointStart; //Lưu tọa độ xuất hiện đầu của chuối

        /// <summary>
        /// Khởi tạo 
        /// </summary>
        public void KhoiTao()
        {
            _Chuoi.TrangThai = enumTrangThai.life;
            Random r = new Random();
            int nextValue = r.Next(CThamSo.posrdChuoimax, CThamSo.posrdChuoimin); // Returns a random number from 0-99

            _pointStart = new Vector2(_Chuoi.Dstoado["chuoi"].X, nextValue);
            _toadoXuatHien1 = _pointStart;
        }

        public CChuoi_BUS(ContentManager content, GameTime gameTime, SpriteBatch spriteBatch)
        {
            this._Chuoi = new CChuoi_DTO(content, gameTime, spriteBatch);
            KhoiTao();
        }
        /// <summary>
        /// Update dùng để cập nhật 
        /// </summary>
        /// <param name="gameTime"></param>
        public void Update(GameTime gameTime)
        {
             _rechuoi = new Rectangle((int)_toadoXuatHien1.X, (int)_toadoXuatHien1.Y, _Chuoi.Dstoado["chuoi"].Width, _Chuoi.Dstoado["chuoi"].Height);
             ChuoiChay(CGLOBAL.speedChuoi);

             if (_toadoXuatHien1.X + _Chuoi.Dstoado["chuoi"].Width < -1)
             {
                 setDie();
             }
        }
        /// <summary>
        /// set Die dùng để set trạng thái mất cho chuối
        /// </summary>
        public void setDie()
        {
            _Chuoi.TrangThai = enumTrangThai.die;
        }
        /// <summary>
        /// dùng để kiểm tra trạng chuối còn hay mất
        /// </summary>
        /// <returns></returns>
        public bool IsLife()
        {
            if (_Chuoi.TrangThai == enumTrangThai.life)
                return true;
            return false;
        }
         /// <summary>
         /// dùng để thay đổi tọa độ chạy
         /// </summary>
         /// <param name="speed"></param>
        public void ChuoiChay(int speed)
        {
            _toadoXuatHien1 = new Vector2(_toadoXuatHien1.X - speed, _toadoXuatHien1.Y);
        }
        /// <summary>
        /// dùng để vẽ đối tượng ra
        /// </summary>
        /// <param name="gametime"></param>
        public void Draw(GameTime gametime)
        {  
           this._Chuoi.SpriteBatch.Draw(this._Chuoi.VatThe1, _toadoXuatHien1, Color.White);
        }
    }
}
